# gcc-10.1-gml
  
patch for GNU GCC-10.1 compiler to generate GML (Graph-Markup-Language) graph data files for use with gml4gtk or other programs  
  
Get a copy of gcc-10.1 source from gnu.org or mirrors.  
unpack it and copy the files here in directory gcc  
in the target directory gcc .  
The *.c.orig are the original gcc-10.1 files.  
configure and compile gcc as usual.  
When using gcc option -fdump-tree-all-graph or  
option -fdump-rtl-all-graph gml graph files  
are created for use with gml4gtk or other tools.  
Also possible is option -fdump-ipa-all-graph  
In the example directory are gml graph examples.  
  
programs which depend on graphviz severely limit the user and themself to what is possible in graph layout and to make it more worse the output of graphviz does omit much important information about the graph data.  
The solution is to keep using ogdf, igraph, showgraph, elk or otherwise and make sure all of the graph data details are available to the user.  
And graphviz cannot write to gml, graphml, tulip or other graph formats to block interoperbility with other types of graph software then graphviz.  
There are examples where this graphviz usage has been a problem this way as a anti-feature for the user as defined by fsf.org:  
" Antifeatures are flags applied to applications to warn of issues that may be undesirable from the user's perspective. Frequently it is behavior that benefits the developer, but that the end user of the software would prefer not to be there."  
  
https://directory.fsf.org/wiki/Free_Software_Directory:Antifeatures  
  
Other software with anti-features is in this list of malware created by google, miscrosoft, apple and others:  
  
https://www.gnu.org/proprietary/all.html  
  
In directory gcc-12 is a patch to add version info in the graph data  
  
todo:   
not much work to port this to current gcc-11 version  
generate basic graphml data because it is supported by multiple real free software projects   
accurate data description written as json jgf graph data format is mostly flexible because there are for every language reliable json parsers  
  
SPDX-License-Identifier: GPL-3.0+  
License-Filename: LICENSE  
  
<span>🇳🇱</span>
  
